package com.armed.ejb.entities;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Class Usuarios
 *
 *
 * @author init() software
 * @version 08/02/2008 
 */
@Entity
@Table(name = "USUARIOS")
@NamedQueries({@NamedQuery(name = "Usuarios.findByNombreUsuario", query = "SELECT u FROM Usuarios u WHERE u.nombreUsuario = :nombreUsuario"), @NamedQuery(name = "Usuarios.findByContrasena", query = "SELECT u FROM Usuarios u WHERE u.contrasena = :contrasena"), @NamedQuery(name = "Usuarios.findByNivel", query = "SELECT u FROM Usuarios u WHERE u.nivel = :nivel"), @NamedQuery(name = "Usuarios.findByFechaCreacion", query = "SELECT u FROM Usuarios u WHERE u.fechaCreacion = :fechaCreacion")})
public class Usuarios implements Serializable 
{
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "NOMBRE_USUARIO", nullable = false)
    private String nombreUsuario;
    @Column(name = "CONTRASENA")
    private String contrasena;
    @Column(name = "NIVEL")
    private Integer nivel;
    @Column(name = "FECHA_CREACION")
    @Temporal(TemporalType.DATE)
    private Date fechaCreacion;
    @JoinColumn(name = "ID_DUENO", referencedColumnName = "ID_PERSONA")
    @ManyToOne(cascade={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH})
    private Empleados idDueno;
    /** Constructor of Usuarios */
    public Usuarios()
    {
    }

    public Usuarios(String nombreUsuario)
    {
        this.nombreUsuario = nombreUsuario;
    }

    public String getNombreUsuario()
    {
        return nombreUsuario;
    }

    public void setNombreUsuario(String nombreUsuario)
    {
        this.nombreUsuario = nombreUsuario;
    }

    public String getContrasena()
    {
        return contrasena;
    }

    public void setContrasena(String contrasena)
    {
        this.contrasena = contrasena;
    }

    public Integer getNivel()
    {
        return nivel;
    }

    public void setNivel(Integer nivel)
    {
        this.nivel = nivel;
    }

    public Date getFechaCreacion()
    {
        return fechaCreacion;
    }

    public void setFechaCreacion(Date fechaCreacion)
    {
        this.fechaCreacion = fechaCreacion;
    }

    public Empleados getIdDueno()
    {
        return idDueno;
    }

    public void setIdDueno(Empleados idDueno)
    {
        this.idDueno = idDueno;
    }

    @Override
    public int hashCode()
    {
        int hash = 0;
        hash += (nombreUsuario != null ? nombreUsuario.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object)
    {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Usuarios))
        {
            return false;
        }
        Usuarios other = (Usuarios) object;
        if ((this.nombreUsuario == null && other.nombreUsuario != null) || (this.nombreUsuario != null && !this.nombreUsuario.equals(other.nombreUsuario)))
        {
            return false;
        }
        return true;
    }

    @Override
    public String toString()
    {
        return "com.armed.ejb.entities.Usuarios[nombreUsuario=" + nombreUsuario + "]";
    }
}
